package cn.edu.ecut.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.time.LocalDateTime;

import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class PassiveServlet implements Servlet {
	
	static { // Class Initializer 【 类初始化器  】
		// 当一个类首次被主动使用时，会执行 该类的  类初始化器 中的代码
		System.out.println( "类初始化:  " + PassiveServlet.class.getName() );
	}
	
	{ // Instance Initializer 【 实例初始化器 】
		System.out.println( "实例初始化:  " + this );
	}
	
	public PassiveServlet() {
		super();
		System.out.println( "构造方法: " + this );
	}
	
	@Override
	public void init(ServletConfig config) throws ServletException {
		System.out.println( "容器初始化Servlet实例 : " + this );
		// 在容器调用 某个Servlet实例的 init方法时会为其传入 ServletConfig
	}

	@Override
	public void service( ServletRequest req , ServletResponse resp ) throws ServletException, IOException {
		System.out.println( "Servlet实例正在提供服务 : " + this );
		
		resp.setContentType( "text/html;charset=UTF-8" );
		PrintWriter out = resp.getWriter();
		out.println( "<div style='text-align:center;'>" + LocalDateTime.now() + "</div>" );
	}
	
	@Override
	public void destroy() {
		System.out.println( "容器释放Servlet实例所占用的资源 : " + this );
	}
	
	@Override
	public ServletConfig getServletConfig() {
		return null;
	}

	@Override
	public String getServletInfo() {
		return null;
	}
	
}
